package polymorphic;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/9/18 10:50
 *  若要拓展花朵类型，需要修改：1.增加类
 *                            2.增加实例化对象
 *                            3.增加str中的字符串
 *                            4.增加for循环中的 分支比较和函数调用 。。。。
 *          很麻烦！
 *
 *   当使用多态： 不需要增加分支比较
 */
public class SharpTest {
    public static void main(String[] args) {
        //假设没有向上转型
//        Rect rect = new Rect();
//        Cycle cycle = new Cycle();
//        Tran tran = new Tran();
//        Flower flower = new Flower();
//        String[] sharps = {"cycle","tran","rect","flower"};
//
//        for (String str:sharps) {
//            if (str.equals("rect")){
//                rect.draw();
//            }else if (str.equals("tran")){
//                tran.draw();
//            }else if (str.equals("cycle")){
//                cycle.draw();
//            }else if (str.equals("flower")){
//                flower.draw();
//            }
//        }
        //多态方法
        //形状的对象数组
        Sharp[] sharps = {new Rect(),new Cycle(),new Tran(),new Flower(),new Rhombus()};
        for(Sharp sharp:sharps){
            sharp.draw();
        }
    }
}
